/*
 *  Copyright 2016-2019 Netflix, Inc.
 *
 *     Licensed under the Apache License, Version 2.0 (the "License");
 *     you may not use this file except in compliance with the License.
 *     You may obtain a copy of the License at
 *
 *         http://www.apache.org/licenses/LICENSE-2.0
 *
 *     Unless required by applicable law or agreed to in writing, software
 *     distributed under the License is distributed on an "AS IS" BASIS,
 *     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *     See the License for the specific language governing permissions and
 *     limitations under the License.
 *
 */
package com.netflix.hollow.zenoadapter;

import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;

public class HollowOrdinalMappingLoader {

    public static Map<String, int[]> load(InputStream is) throws IOException {
        DataInputStream dis = new DataInputStream(is);

        int size = dis.readShort();

        Map<String, int[]> idx = new HashMap<String, int[]>(size);

        for (int i = 0; i < size; i++) {
            String type = dis.readUTF();
            int typeIdx[] = new int[dis.readInt()];
            for (int j = 0; j < typeIdx.length; j++) {
                typeIdx[j] = dis.readInt();
            }
            idx.put(type, typeIdx);
        }

        dis.close();

        return idx;
    }

}
